package com.platform.common.config;

import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "qiniu")
@Data
public class QiniuConfig {

    private String uploadUrl;
    private String uploadCdn;
    private String accessKey;
    private String secretKey;
    private String bucket;
    private Long expires;

    // 密钥配置
    private static Auth auth;

    /**
     * 获取上传凭证
     *
     * @return
     */
    public String getUpToken() {
        if (QiniuConfig.auth == null) {
            QiniuConfig.auth = Auth.create(accessKey, secretKey);
        }
        // <bucket>:<key>，表示只允许用户上传指定key的文件。在这种格式下文件默认允许“修改”，已存在同名资源则会被本次覆盖。
        // 如果希望只能上传指定key的文件，并且不允许修改，那么可以将下面的 insertOnly 属性值设为 1。
        // 第三个参数是token的过期时间
        return QiniuConfig.auth.uploadToken(bucket, null, expires, new StringMap().put("insertOnly", 0));
    }


}
